package com.jeeplus.modules.common.excel.common.validator.chain;

import com.jeeplus.modules.common.excel.common.validator.abs.AbstractCustomValidator;
import com.jeeplus.modules.common.excel.common.validator.abs.AbstractValidator;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 抽象类：校验责任链
 * @author wang.yishu
 */
public abstract class AbstractValidatorChain {
    /**
     * 一次校验流程所需要的的数据
     */
    protected Map<String, List<Object>> necessaryValidateData = new HashMap<>();

    protected List<AbstractCustomValidator> customValidatorList;

    /**
     * 执行校验
     * @param entity    数据实体
     * @return  错误信息
     */
    public abstract String doValidate(Object entity);

    public abstract void addNode(AbstractValidator node);

    public Map<String, List<Object>> getNecessaryValidateData() {
        return necessaryValidateData;
    }

    public List<AbstractCustomValidator> getCustomValidatorList() {
        return customValidatorList;
    }

    public void setCustomValidatorList(List<AbstractCustomValidator> customValidatorList) {
        this.customValidatorList = customValidatorList;
    }
}
